#pragma once

/**
 * HeightMap - structure that stores height map data
 *
 * Written by: Elias Tolokonnikov
 * Date: May, 2014
 */

#include "HSModelAPI.h"
#include <vector>

class HeightMap
  {
  private:
    size_t m_size_x, m_size_y;
    std::vector<double> m_map;

  public:
    HSMODEL_API HeightMap(size_t i_size_x, size_t i_size_y);

    /// Getter and setter for a single height map point
    HSMODEL_API double Get(size_t i_x, size_t i_y) const;
    HSMODEL_API void Set(size_t i_x, size_t i_y, double i_value);

    /// Getters for height map dimensions
    HSMODEL_API size_t GetSizeX() const;
    HSMODEL_API size_t GetSizeY() const;
  };